"""
提取字符串中的数，并且对数进行一些处理
整数，分数，小数等数字均可获取并处理
而且还把数字由小到大排列了
"""

import re

def get_numbers(value):
    numPattren = re.compile('[0-9]+/[1-9][0-9]*|[0-9]*\.[0-9]+|[0-9]+')
    numbers = numPattren.findall(value)
    if not numbers:
        return
    numbers = [eval(num) for num in numbers]
    numbers = list(set(numbers))
    numbers.sort()
    return numbers



if __name__ == "__main__":
    string = '0.12，45，2.55，.245，1/2,22.55,0.125,999,.256,1/3,0.125,1/8'
    numbers = get_numbers(string)
    print(numbers)
    
